<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<!-- 条件渲染 v-if 小案例 -->

<!-- 
区别：
    v-if 是“真实的”按条件渲染，因为它确保了在切换时，条件区块内的事件监听器和子组件都会被销毁与重建。

    v-if 也是惰性的：如果在初次渲染时条件值为 false，则不会做任何事。条件区块只有当条件首次变为 true 时才被渲染。

    相比之下，v-show 简单许多，元素无论初始条件如何，始终会被渲染，只有 CSS display 属性会被切换。

    总的来说，v-if 有更高的切换开销，而 v-show 有更高的初始渲染开销。因此，如果需要频繁切换，则使用 v-show 较好；如果在运行时绑定条件很少改变，则 v-if 会更合适。
 -->

<body>
    <div id="app">

        <div>
            <h3>使用 v-if </h3>
            <div v-if=" loginType === 'phone' ">
                <div>
                    <label for="phoneNumber">手机：</label>
                    <input id="phoneNumber" type="text" name="phoneNumber" placeholder="请输入手机号码" value="" />
                </div>
                <div>
                    <label for="phoneNumberPwd">密码：</label>
                    <input id="phoneNumberPwd" type="text" name="phoneNumberPwd" placeholder="请输入密码：" value="" />
                </div>
            </div>
    
            <div v-if=" loginType === 'email' ">
                <div>
                    <label for="email">Email：</label>
                    <input id="email" type="text" name="email" placeholder="请输入邮箱" value="" />
                </div>
                <div>
                    <label for="emailPwd">密码：</label>
                    <input id="emailPwd" type="text" name="emailPwd" placeholder="请输入密码：" value="" />
                </div>
            </div>
        </div>


        <div>
            <h3>使用 v-show </h3>
            <div v-show=" loginType === 'phone' ">
                <div>
                    <label for="phoneNumber">手机：</label>
                    <input id="phoneNumber" type="text" name="phoneNumber" placeholder="请输入手机号码" value="" />
                </div>
                <div>
                    <label for="phoneNumberPwd">密码：</label>
                    <input id="phoneNumberPwd" type="text" name="phoneNumberPwd" placeholder="请输入密码：" value="" />
                </div>
            </div>
    
            <div v-show=" loginType === 'email' ">
                <div>
                    <label for="email">Email：</label>
                    <input id="email" type="text" name="email" placeholder="请输入邮箱" value="" />
                </div>
                <div>
                    <label for="emailPwd">密码：</label>
                    <input id="emailPwd" type="text" name="emailPwd" placeholder="请输入密码：" value="" />
                </div>
            </div>
        </div>
        
        <div>
            <button @click="toggle">切换登录</button>
        </div>
    </div>
    <script src="js/vue.js"></script>

    <script>
        const HelloVue = {
            data() {
                return {
                    loginType: 'phone',
                }
            },
            computed: {

            },
            methods: {
                toggle(){
                    if(this.loginType === 'phone'){
                        this.loginType = 'email';
                    } else {
                        this.loginType = 'phone';
                    }
                },
            }
        };

        const app = Vue.createApp(HelloVue).mount("#app");
    </script>
</body>

</html>